package com.oa.framework.org.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.oa.framework.org.domain.Duty;
import com.oa.framework.org.domain.Permission;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author cuichao
 */
@Component
public interface DutyDao extends BaseMapper<Duty> {


    /**
     * 添加 角色权限
     * @param dutyId
     * @param permissions
     * @return
     */
    int addPermissions(@Param("dutyId") Long dutyId, @Param("permissions")List<Permission> permissions);
    /**
     * 分页查询职位
     * @param page
     * @return
     */
    IPage<Duty> search(IPage<Duty> page);

    /**
     * 根据Id获取职务详情
     * @param dutyId
     * @return
     */
    Duty getDutyDetail(Long dutyId);

    /**
     * 根据职务ID查找用户Id
     * @param dutyId
     * @return
     */
    List<Long> findUserAccountIdsByDutyId(Long dutyId);
    /**
     * 禁用职位
     * @param dutyId
     * @return
     */
    int disableDuty(Long dutyId);

    /**
     * 根据RoleId移除角色的权限
     *
     * @param dutyId
     * @return
     */
    int removePermissions(Long dutyId);
}
